package com.jl.mapper;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jl.model.InspectionTask;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 巡检指令表 Mapper 接口
 * </p>
 *
 * @author JiangJian
 * @since 2019-03-18
 */
public interface InspectionTaskMapper extends BaseMapper<InspectionTask> {

    /**
     * 查询巡检计划指令列表
     * 这里的Param中必须使用 ew为名称 这是因为使用了mybatisplus中的内定的参数
     * 且在xml中必须是使用 美元符 $ 来作为占位符
     * @param page
     * @param qw
     * @return
     */
    List<Map<String,Object>> selectDataGrid(Page<Map<String,Object>> page, @Param("ew") QueryWrapper<InspectionTask> qw);

    /**
     * 获取某个月份所有用户完成的维护任务
     * @param month 月份
     * @param id 用户id
     * @return
     */
    List<Map<String,Long>> selectInspectFinishCount(@Param("month")String month,@Param("id")Long id);

    /**
     * 获取某个月份所有用户确认(班长或者主管)的维护任务
     * @param month 月份
     * @return
     */
    List<Map<String,Long>> selectInspectConfirmCount(@Param("month")String month);


    /**
     * 获取某个用户某个月份确认(班长或者主管)的维护任务数量
     * @param month 月份
     * @param id 用户id
     * @return
     */
    Integer selectInspectConfirmCountByUserId(@Param("month")String month,@Param("id")Long id);

    /**
     * 更新巡检指令的结果信息
     * @param id id
     * @param operatorId 执行人id
     * @param result 结果信息
     * @return 结果数
     */
    Integer updateInspectionTaskResult(@Param("id") Long id,@Param("operatorId")Long operatorId,@Param("result") String result);


}
